home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / comms / other / slrn / slrn_src / slrnpull / setgid.txt < prev    next >
Text File  |  1999-05-14  |  4KB  |  79 lines

  1. Note: The patch described in this file has been implemented, but is
  2. disabled by default.  To enable it, change
  3.  
  4.     #define SLRNPULL_USE_SETGID_POSTS    0
  5.  
  6. to
  7.  
  8.     #define SLRNPULL_USE_SETGID_POSTS    1
  9.  
  10. in slrnfeat.h, and recompile.  The patch is from Sylvain Robitaille
  11. <syl@alcor.concordia.ca>, and is described below:
  12.  
  13. ---------------------------------------------------------------------------
  14. This patch will allow you to run slrnpull as an unprivileged user, rather
  15. than as root, (or as yourself). To do this (if you're already using
  16. slrnpull), you'll need change the ownerships of all the directories and
  17. files from your SLRNPULL_ROOT_DIR and down.
  18.  
  19. ie:
  20. # chown -R news.news /local/var/slrnpull
  21.  
  22. Use whatever user name, group name, and path appropriate for your own
  23. system. Run slrnpull from the news user's crontab, rather than from root's
  24. (or your own).
  25.  
  26. Note that this has been tested on Linux-2.0.xx, but should work fine on
  27. any Unix I've seen. It relies simply on the fact that a setgid directory
  28. forces all files placed within that directory to be owned by the group
  29. owner of the directory.
  30.  
  31. Please post questions, comments, or criticisms to the newsgroup.
  32.  
  33.  
  34. # 1998/07/07 Sylvain Robitaille: Patch to allow slrnpull to run with
  35. #                                reduced privileges.
  36. #
  37. # Background: Slrn runs with a umask of 077, as set in src/slrn.c. This
  38. #             means that any files created by slrn on behalf of a user
  39. #             are readable and writable only to that user. Normally,
  40. #             this is the desired result.
  41. #
  42. #             Unfortunately, it also means that out-going posts created
  43. #             in the slrnpull/out.going directory are also created with
  44. #             the same file modes. This means that for slrnpull to be
  45. #             able to remove the file from the out.going directory after
  46. #             it's been posted, (or move it to the out.going/rejects
  47. #             directory if posting failed), slrnpull must either be run
  48. #             by the same user that posted the message, or by root. On a
  49. #             multi-user system, the latter is the only option.
  50. #
  51. #             For a variety of reasons, programs should only run as root
  52. #             if they need the extra privilege. In this case, all that
  53. #             was needed was to give slrnpull enough privilege to
  54. #             manipulate files created in the out.going directory.
  55. #
  56. # Solution: Create a special user and group id for slrnpull. I've chosen
  57. #           to name them both 'news', (but any name will work just as
  58. #           well). The only group the news user belongs to is the group
  59. #           'news'. The entire directory tree where slrnpull works is
  60. #           owned by user 'news' and group 'news'. Slrnpull is run from
  61. #           user 'news' crontab file.
  62. #
  63. #           This permits slrnpull to run without root privilege, and
  64. #           still have all the permissions it needs to work within the
  65. #           news spool and associated log files. The tricky part is that
  66. #           now, slrnpull can't manipulate local posts in the out.going
  67. #           directory, because the files are owned by the user/group
  68. #           that created them with read/write permission only to the
  69. #           user.
  70. #
  71. #           If we make the out.going directory setgid to the group
  72. #           'news', files created in that directory will be owned by
  73. #           that group. We now only need to provide read/write
  74. #           permission to user *and* group at the time the file is
  75. #           created.
  76. #
  77. #           This patch does exactly that. It also patches slrnpull to
  78. #           create the out.going directory with the setgid bit.
  79.